//该文件就是写路由配置的地方
import Vue from 'vue'
import VueRouter from 'vue-router'

Vue.use(VueRouter)

// 导入页面@代表src
import { getToken } from '@/utils/token'

import Login from '@/views/login/Login.vue'
import Layout from '@/views/layout/Index.vue'
import Chart from '@/views/layout/chart/Index.vue'
import User from '@/views/layout/user/Index.vue'
import Enterprise from '@/views/layout/enterprise/Index.vue'
import Question from '@/views/layout/question/Index.vue'
import Subject from '@/views/layout/subject/Index.vue'

const router = new VueRouter({
  // routes这个属性，就叫这个，不要乱写
  routes: [
    {
      path: '/login',
      // component 单词不要写错
      component: Login,
      meta: {
        title: '请您登录'
      }
    },
    {
      path: '/layout',
      // component 单词不要写错
      component: Layout,
      // redirect: '/layout/user', 
      meta: {
        roles:['超级管理员','管理员','老师','学生']
      },
      children: [
        // 要注意，以 / 开头的嵌套路径会被当作根路径。 这让你充分的使用嵌套组件而无须设置嵌套的路径。
        {
          path: 'chart',
          component: Chart,
          meta: {
            title: '这是一个图表',
            roles:['超级管理员','管理员','老师'],
            fullPath: '/layout/chart',
            icon: 'el-icon-pie-chart',
          }
        },
        {
          path: 'user',
          component: User,
          meta: {
            title: '这是一个用户列表',
            roles:['超级管理员','管理员','老师'],
            fullPath: '/layout/user',
            icon: 'el-icon-user',
          }
        },
        {
          path: 'enterprise',
          component: Enterprise,
          meta: {
            title: '这是一个企业列表',
            roles:['超级管理员','管理员','老师'],
            fullPath: '/layout/enterprise',
            icon: 'el-icon-office-building',
          }
        },
        {
          path: 'question',
          component: Question,
          meta: {
            title: '这是一个题库列表',
            roles:['超级管理员','管理员','老师','学生'],
            fullPath: '/layout/question',
            icon: 'el-icon-edit-outline',
          }
        },
        {
          path: 'subject',
          component: Subject,
          meta: {
            title: '这是一个学科列表',
            roles:['超级管理员','管理员','老师'],
            fullPath: '/layout/subject',
            icon: 'el-icon-notebook-2',
          }
        }
        // { path: '', redirect: 'user' }
      ]
    },
    // 路由重定向
    {
      path: '/',
      redirect: '/login'
    }
  ]
})

// 前置导航守卫禁止没有token直接跳转
router.beforeEach((to, from, next) => {
  // 判断地址是否是login 是就直接跳转login
  if (to.path === '/login') {
    next()
  } else {
    // 不是跳转login判断是否有token
    const token = getToken()
    if (token) {
      next()
    } else {
      next('/login')
    }
  }
})
// 后置导航守卫
router.afterEach(to => {
  console.log(to)
  document.title = to.meta.title || '小杨小杨！！'
})

// Es6默认导出
export default router
